package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.Orders;
import com.ruoyi.system.domain.TbCustomerOrder;
import com.ruoyi.common.core.domain.TbCustomerOrderDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 订单管理Mapper接口
 * 
 * @author ruoyi
 * @date 2024-09-12
 */
@Mapper
public interface TbCustomerOrderMapper 
{
    /**
     * 查询订单管理
     * 
     * @param orderNumber 订单管理主键
     * @return 订单管理
     */
    public TbCustomerOrder selectTbCustomerOrderByOrderNumber(Long orderNumber);

    /**
     * 查询订单管理列表
     * 
     * @param tbCustomerOrder 订单管理
     * @return 订单管理集合
     */
    public List<TbCustomerOrder> selectTbCustomerOrderList(TbCustomerOrder tbCustomerOrder);

    /**
     * 新增订单管理
     * 
     * @param tbCustomerOrder 订单管理
     * @return 结果
     */
    public int insertTbCustomerOrder(TbCustomerOrder tbCustomerOrder);

    /**
     * 修改订单管理
     * 
     * @param tbCustomerOrder 订单管理
     * @return 结果
     */
    public int updateTbCustomerOrder(TbCustomerOrder tbCustomerOrder);

    /**
     * 删除订单管理
     * 
     * @param orderNumber 订单管理主键
     * @return 结果
     */
    public int deleteTbCustomerOrderByOrderNumber(String orderNumber);

    /**
     * 批量删除订单管理
     * 
     * @param orderNumbers 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbCustomerOrderByOrderNumbers(Long[] orderNumbers);

    /**
     * 批量删除商家-顾客：订单详情
买了什么东西 、  数量  、  价格
     * 
     * @param orderNumbers 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbCustomerOrderDetailByOrderNumbers(Long[] orderNumbers);
    
    /**
     * 批量新增商家-顾客：订单详情
买了什么东西 、  数量  、  价格
     * 
     * @param tbCustomerOrderDetailList 商家-顾客：订单详情
买了什么东西 、  数量  、  价格列表
     * @return 结果
     */
    public int batchTbCustomerOrderDetail(List<TbCustomerOrderDetail> tbCustomerOrderDetailList);
    

    /**
     * 通过订单管理主键删除商家-顾客：订单详情
买了什么东西 、  数量  、  价格信息
     * 
     * @param orderNumber 订单管理ID
     * @return 结果
     */
    public int deleteTbCustomerOrderDetailByOrderNumber(String orderNumber);

    public List<TbCustomerOrderDetail> selectTbCustomerOrderByOrderNumberDetail(String orderNumber);

    TbCustomerOrder selectTbCustomerOrderByOrderNumber(String tableName, int merchantId, int storeId, Long orderNumber);

    int insert(Orders orders);

    void insertOrderDetails(Orders orders);

    void insertOrderDetails(@Param("orderNo") String orderNo,@Param("tbCustomerOrderDetail")  List<TbCustomerOrderDetail> tbCustomerOrderDetail);
}
